package com.link.base.tencent.corpwx.externalcontact.service;

import com.link.base.tencent.corpwx.externalcontact.model.ExternalFollowTag;
import com.link.core.basic.service.BasicService;

import java.util.List;

/**
 * 外部联系人-跟进人-标签 
 *
 * @author 欧阳振强
 * @date 2020-01-02 15:54:59.0
 */
public interface  ExternalFollowTagService extends BasicService<ExternalFollowTag> {
    /**
     * 通过Link跟进人Id查询其所打标签信息
     *
     * @author 欧阳振强
     * @date 2020/01/02
     * @param followUserId 跟进人Id
     */
    List<ExternalFollowTag> listExternalFollowTagByHeadId(Long followUserId) throws Exception;

    /**
     * 比较两个跟进人标签数组对象，构造出一个新建、更新、删除的新数组对象
     *
     * @author 欧阳振强
     * @date 2020/01/02
     * @param apiList 企业微信返回的跟进人标签列表
     * @param linkList link中查询出来的跟进人标签列表
     */
    List<ExternalFollowTag> opExternalFollowTagList(List<ExternalFollowTag> apiList, List<ExternalFollowTag> linkList) throws Exception;

    /**
     * 给定标签数组对象循环创建标签
     *
     * @author 欧阳振强
     * @date 2020/01/03
     * @param list 标签列表
     * @param followUserId 跟进人Id
     */
    void insertByList(List<ExternalFollowTag> list, Long followUserId) throws Exception;

    /**
     * 给定标签数组对象循环删除标签
     *
     * @author 欧阳振强
     * @date 2020/01/03
     * @param list 标签列表
     */
    void delByList(List<ExternalFollowTag> list) throws Exception;
}